package sge.DAO;

import java.util.ArrayList;
import java.util.logging.Logger;
import sge.Datos.ModeloTabla;
import sge.Entidades.*;

public class RegistroDAO implements ObjetoDAO {

    private final static Logger LOG = Logger.getLogger(UsuarioDAO.class.getName());

    public RegistroDAO() {
    }

    public boolean crear(Registro registro) {
        String consulta = "INSERT INTO registro(id_registro, usuario_id_usuario, "
                + "fecha, descripcion) VALUES(NULL, '"
                + registro.getUsuarioIdUsuario() + "', '"
                + registro.getFecha() + "', '"
                + registro.getDescripcion() + "');";


        boolean exito = CONEXION.ejecutarSQL(consulta) > 0;;
        if (exito) {
            registro.setIdRegistro(CONEXION.obtenerUltimoIDGenerado());
        }
        return exito;

    }

    public boolean consultar(Registro registro) {

        /*String consulta = "SELECT * FROM usuario WHERE estado = 1 ";

         if (u.getIdUsuario() != null) {
         consulta += " AND id_usuario = ?";
         }else {
         return false;
         }

         PreparedStatement ps =
         CONEXION.crearSentenciaPreparada(consulta);

         try {
         ps.setInt(1, u.getIdUsuario());
     
         ResultSet rs = ps.executeQuery();

         if (rs.next()) {
         u.setIdUsuario(rs.getInt(1));
         u.setClave(rs.getString(2));
         u.setDocumento(rs.getString(3));
         u.setNombre(rs.getString(4));
         u.setApellido(rs.getString(5));
         u.setDireccion(rs.getString(6));
         u.setTelefono(rs.getString(7));
         u.setTipo(rs.getString(8));
         u.setCargo(rs.getString(9));
         u.setEstado(rs.getString(10));
         return true;
         } else {
         return false;
         }

         } catch (SQLException ex) {
         Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, ex);
         }*/
        return false;
    }

    public boolean modificar(Registro registro) {
        String consulta = "UPDATE registro SET "
                + "id_registro='" + registro.getIdRegistro()
                + "', usuario_id_usuario='" + registro.getUsuarioIdUsuario()
                + "', fecha='" + registro.getFecha()
                + "', descripcion='" + registro.getDescripcion() + "' WHERE "
                + "id_registro='" + registro.getIdRegistro() + "';";


        boolean exito = CONEXION.ejecutarSQL(consulta) > 0;;
        return exito;
    }

    public boolean eliminar(Integer idRegistro) {
        String consulta = "DELETE FROM registro WHERE id_registro='" + idRegistro + "';";

        boolean exito = CONEXION.ejecutarSQL(consulta) > 0;;
        return exito;

    }

    public ModeloTabla seleccionar() {

        String consulta = "SELECT * FROM registro";

        ArrayList<String> cols = new ArrayList<>();

        cols.add("Id registro");
        cols.add("Usuario id usuario");
        cols.add("Fecha");
        cols.add("Descripcion");

        ModeloTabla modelo = new ModeloTabla(consulta, cols, false);

        return modelo;

    }
}